home *** CD-ROM | disk | FTP | other *** search
/ Multimedia Jumpstart / Multimedia Microsoft Jumpstart Version 1.1a (Microsoft).BIN / develpmt / sdk / vfw11.win / vfwdk / msacmdrv.h_ / msacmdrv.bin
Encoding:
Text File  |  1993-11-19  |  6.7 KB  |  219 lines

  1. //==========================================================================;
  2. //
  3. //  msacmdrv.h
  4. //
  5. //  Copyright (c) 1992-1993 Microsoft Corporation.  All Rights Reserved.
  6. //
  7. //  Description:
  8. //      Audio Compression Manager Public Header File for Drivers
  9. //
  10. //  History:
  11. //
  12. //==========================================================================;
  13.  
  14. #ifndef _INC_ACMDRV
  15. #define _INC_ACMDRV         /* #defined if msacmdrv.h has been included */
  16.  
  17. #ifndef RC_INVOKED
  18. #pragma pack(1)             /* Assume byte packing throughout */
  19. #endif  /* RC_INVOKED */
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {                /* Assume C declarations for C++ */
  23. #endif  /* __cplusplus */
  24.  
  25.  
  26. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  27. //
  28. //  ACM Driver Version:
  29. //
  30. //  the version is a 32 bit number that is broken into three parts as 
  31. //  follows:
  32. //
  33. //      bits 24 - 31:   8 bit _major_ version number
  34. //      bits 16 - 23:   8 bit _minor_ version number
  35. //      bits  0 - 15:   16 bit build number
  36. //
  37. //  this is then displayed as follows:
  38. //
  39. //      bMajor = (BYTE)(dwVersion >> 24)
  40. //      bMinor = (BYTE)(dwVersion >> 16) & 
  41. //      wBuild = LOWORD(dwVersion)
  42. //
  43. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  44.  
  45. #define MAKE_ACM_VERSION(mjr, mnr, bld) (((long)(mjr)<<24)| \
  46.                                          ((long)(mnr)<<16)| \
  47.                                          ((long)bld))
  48.  
  49.  
  50. //
  51. //
  52. //
  53. //
  54. //
  55. #define ACMDRVOPENDESC_SECTIONNAME_CHARS    
  56.  
  57. typedef struct tACMDRVOPENDESC
  58. {
  59.     DWORD           cbStruct;       // sizeof(ACMDRVOPENDESC)
  60.     FOURCC          fccType;        // 'audc'
  61.     FOURCC          fccComp;        // sub-type (not used--must be 0)
  62.     DWORD           dwVersion;      // current version of ACM opening you
  63.     DWORD           dwFlags;        //
  64.     DWORD           dwError;        // result from DRV_OPEN request
  65.     LPCSTR          pszSectionName; // see DRVCONFIGINFO.lpszDCISectionName
  66.     LPCSTR          pszAliasName;   // see DRVCONFIGINFO.lpszDCIAliasName
  67.  
  68. } ACMDRVOPENDESC, *PACMDRVOPENDESC, FAR *LPACMDRVOPENDESC;
  69.  
  70.  
  71. //
  72. //
  73. //
  74. //
  75. //
  76. typedef struct tACMDRVSTREAMINSTANCE
  77. {
  78.     DWORD               cbStruct;
  79.     LPWAVEFORMATEX      pwfxSrc;
  80.     LPWAVEFORMATEX      pwfxDst;
  81.     LPWAVEFILTER        pwfltr;
  82.     DWORD               dwCallback;
  83.     DWORD               dwInstance;
  84.     DWORD               fdwOpen;
  85.     DWORD               fdwDriver;
  86.     DWORD               dwDriver;
  87.     HACMSTREAM          has;
  88.  
  89. } ACMDRVSTREAMINSTANCE, *PACMDRVSTREAMINSTANCE, FAR *LPACMDRVSTREAMINSTANCE;
  90.  
  91.  
  92. //
  93. //  NOTE! this structure must match the ACMSTREAMHEADER in msacm.h but
  94. //  defines more information for the driver writing convenience
  95. //
  96. typedef struct tACMDRVSTREAMHEADER FAR *LPACMDRVSTREAMHEADER;
  97. typedef struct tACMDRVSTREAMHEADER
  98. {
  99.     DWORD                   cbStruct;
  100.     DWORD                   fdwStatus;
  101.     DWORD                   dwUser;
  102.     LPBYTE                  pbSrc;
  103.     DWORD                   cbSrcLength;
  104.     DWORD                   cbSrcLengthUsed;
  105.     DWORD                   dwSrcUser;
  106.     LPBYTE                  pbDst;
  107.     DWORD                   cbDstLength;
  108.     DWORD                   cbDstLengthUsed;
  109.     DWORD                   dwDstUser;
  110.  
  111.     DWORD                   fdwConvert;     // flags passed from convert func
  112.     LPACMDRVSTREAMHEADER    padshNext;      // for async driver queueing
  113.     DWORD                   fdwDriver;      // driver instance flags
  114.     DWORD                   dwDriver;       // driver instance data
  115.  
  116.     //
  117.     //  all remaining fields are used by the ACM for bookkeeping purposes.
  118.     //  an ACM driver should never use these fields (though than can be
  119.     //  helpful for debugging)--note that the meaning of these fields
  120.     //  may change, so do NOT rely on them in shipping code.
  121.     //
  122.     DWORD                   fdwPrepared;
  123.     DWORD                   dwPrepared;
  124.     LPBYTE                  pbPreparedSrc;
  125.     DWORD                   cbPreparedSrcLength;
  126.     LPBYTE                  pbPreparedDst;
  127.     DWORD                   cbPreparedDstLength;
  128.  
  129. } ACMDRVSTREAMHEADER, *PACMDRVSTREAMHEADER;
  130.  
  131.  
  132. //
  133. //  structure for ACMDM_STREAM_SIZE message
  134. //
  135. //
  136. typedef struct tACMDRVSTREAMSIZE
  137. {
  138.     DWORD               cbStruct;
  139.     DWORD               fdwSize;
  140.     DWORD               cbSrcLength;
  141.     DWORD               cbDstLength;
  142.  
  143. } ACMDRVSTREAMSIZE, *PACMDRVSTREAMSIZE, FAR *LPACMDRVSTREAMSIZE;
  144.  
  145.  
  146.  
  147. //
  148. //  structure containing the information for the ACMDM_FORMAT_SUGGEST message
  149. //
  150. //
  151. typedef struct tACMDRVFORMATSUGGEST
  152. {
  153.     DWORD        cbStruct;       // sizeof(ACMDRVFORMATSUGGEST)
  154.     DWORD               fdwSuggest;    // Suggest flags
  155.     LPWAVEFORMATEX      pwfxSrc;    // Source Format
  156.     DWORD        cbwfxSrc;    // Source Size
  157.     LPWAVEFORMATEX      pwfxDst;    // Dest format
  158.     DWORD        cbwfxDst;    // Dest Size
  159.  
  160. } ACMDRVFORMATSUGGEST, *PACMDRVFORMATSUGGEST, FAR *LPACMDRVFORMATSUGGEST;
  161.  
  162.  
  163. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  164. //
  165. //
  166. //
  167. //
  168. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  169.  
  170. //
  171. //
  172. //
  173. #ifndef WIN32
  174.     LRESULT ACMAPI acmApplicationExit(HTASK htask, LPARAM lParam);
  175.     BOOL ACMAPI acmHugePageLock(LPBYTE pbArea, DWORD cbBuffer);
  176.     void ACMAPI acmHugePageUnlock(LPBYTE pbArea, DWORD cbBuffer);
  177. #endif
  178.  
  179.  
  180. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  181. //
  182. //  ACM Driver Messages
  183. //
  184. //
  185. //
  186. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
  187.  
  188. #define ACMDM_DRIVER_NOTIFY             (ACMDM_BASE + 1)
  189. #define ACMDM_DRIVER_DETAILS            (ACMDM_BASE + 10)
  190.  
  191. #define ACMDM_HARDWARE_WAVE_CAPS_INPUT  (ACMDM_BASE + 20)
  192. #define ACMDM_HARDWARE_WAVE_CAPS_OUTPUT (ACMDM_BASE + 21)
  193.  
  194. #define ACMDM_FORMATTAG_DETAILS         (ACMDM_BASE + 25)
  195. #define ACMDM_FORMAT_DETAILS            (ACMDM_BASE + 26)
  196. #define ACMDM_FORMAT_SUGGEST            (ACMDM_BASE + 27)
  197.  
  198. #define ACMDM_FILTERTAG_DETAILS         (ACMDM_BASE + 50)
  199. #define ACMDM_FILTER_DETAILS            (ACMDM_BASE + 51)
  200.  
  201. #define ACMDM_STREAM_OPEN            (ACMDM_BASE + 76)
  202. #define ACMDM_STREAM_CLOSE            (ACMDM_BASE + 77)
  203. #define ACMDM_STREAM_SIZE            (ACMDM_BASE + 78)
  204. #define ACMDM_STREAM_CONVERT            (ACMDM_BASE + 79)
  205. #define ACMDM_STREAM_RESET            (ACMDM_BASE + 80)
  206. #define ACMDM_STREAM_PREPARE            (ACMDM_BASE + 81)
  207. #define ACMDM_STREAM_UNPREPARE            (ACMDM_BASE + 82)
  208.  
  209.  
  210. #ifndef RC_INVOKED
  211. #pragma pack()          /* Revert to default packing */
  212. #endif  /* RC_INVOKED */
  213.  
  214. #ifdef __cplusplus
  215. }                       /* End of extern "C" { */
  216. #endif  /* __cplusplus */
  217.  
  218. #endif  /* _INC_ACMDRV */
  219.